#ifndef GAME_H
#define GAME_H


#include "Scene.h"
#include "Controller.h"
#include "Camera.h"

/** Top class for the whole game
 *
 * Top class for the game, managing the gameloop and the controller, updater and camera.
 */
class Game {
	private: // fields
		/**
		 * holds the scene, for now this is a model containing only lines
		 */
		Scene*			scene;

		/**
		 * holds the controller who polls for inputs and handles then, for now esc lets us quit
		 */
		Controller*		controller;

		/**
		 * holds the camera that renders the (2D) scene in a viewport
		 */
		Camera*			camera;
	public:

		Game();
		~Game();

		/**
		 * start the games loop
		 */
		int run();

		Scene* getScene() { return scene; }

	private: // private functions

};




#endif

